
        <html>
			<head>
			     <title>探秘短信马产业链-从逆向到爆菊 - 国士无双</title>
				 <meta http-equiv="content-type" content="text/html; charset=UTF-8">
			</head>
			<body>
				<h1>原文地址:<a href="http://drops.wooyun.org/tips/789">http://drops.wooyun.org/tips/789</a></h1>
				
      <p>
        <h2>0x00 楔子</h2>

<hr />

<p>近日，小明有了一桩烦心事，扰的他寝食难安。原来是女神的某安卓手机出了怪病，短信收不到，发出去别人也收不到，更可气的是女神用来准备网购的钱都被神秘刷走。当女神满心焦躁翻遍通讯录时，蓦然发现了小明的备注：千斤顶17号-电脑、刷机。于是在女神可怜巴巴大眼睛的注视下，小明把胸脯拍的山响，承诺一天搞定。</p>

<p>于是，小明拿到了梦寐以求的女神手机。可没想到，后面发生的事让他始料未及。</p>

<!--more-->

<h2>0x01 锁定元凶</h2>

<hr />

<p>拿到手机的第一件事，就是找到收不到短信的原因。翻了翻系统短信设置和APP，装的东西都很正常，没有发现可疑的空白图标，用软件管理工具查看，也没有发现可疑的迹象。于是小明从系统程序开始排查，果不然，在打开“谷歌商店”时，发现了狐狸尾巴。</p>

<p>如下图所示，第一，在未联网时点击这种APP会提示“手机无法联网”。</p>

<p><img src="http://static.wooyun.org/20140714/2014071418044153683.png" alt="enter image description here" /><img src="http://static.wooyun.org/20140714/2014071406330779709.png" alt="enter image description here" /></p>

<p>第二，在联网时点击这种APP会提示一大堆权限要求和出现“网络正常”提示</p>

<p><img src="http://static.wooyun.org/20140714/2014071418044297287.jpeg" alt="enter image description here" /></p>

<p>看到这，小明笑了，这不就是最正火的短信拦截马嘛。于是果断把手机通过豌豆荚导出目标APK文件包。如图所示</p>

<p><img src="http://static.wooyun.org/20140714/2014071418044279931.png" alt="enter image description here" /></p>

<p><img src="http://static.wooyun.org/20140714/2014071406330714040.png" alt="enter image description here" /></p>

<p>看着桌面上不到100KB的短信马，小明默默的系上了围裙（安卓虚拟环境），找出了手术刀（反编译工具dex2jar+Xjad），把马儿按到在解剖台（Eclipse）上。</p>

<p><img src="http://static.wooyun.org/20140714/2014071418044238272.png" alt="enter image description here" /></p>

<h2>0x02 庖丁解牛</h2>

<hr />

<p>首先，小明把APK文件解压，然后找到关键的classes.dex文件。他是APK文件的java源码编译文件。</p>

<p><img src="http://static.wooyun.org/20140714/2014071406330811377.png" alt="enter image description here" /></p>

<p>然后把classes.dex 拷贝到dex2jar目录下,然后cmd进入dex2jar目录后再输入：dex2jar.bat classes.dex 回车,同目录下就得到我们想要的源码包：classes_dex2jar.jar</p>

<p><img src="http://static.wooyun.org/20140714/2014071406330881154.png" alt="enter image description here" /></p>

<p><img src="http://static.wooyun.org/20140714/2014071406330856903.png" alt="enter image description here" /></p>

<p>再请出我们的jar反编译Xjad，点击文件-反编译jar-选择上把生成的jar文件，就会反编译成源码文件夹。</p>

<p><img src="http://static.wooyun.org/20140714/2014071406330913903.png" alt="enter image description here" /></p>

<p><img src="http://static.wooyun.org/20140714/2014071406330947549.png" alt="enter image description here" /></p>

<p>到这一步，我们的牛算是初步分解成功了，下面就是如何找出我们要的菲力牛排~</p>

<h2>0x03 轻抚菊花</h2>

<hr />

<p>反编译后分析出木马和后台交互是通过调用c#的WebService协议，而且菊花的IP是加密的，调用代码图如下: </p>

<p><img src="http://static.wooyun.org/20140714/2014071406331036814.png" alt="enter image description here" /></p>

<p>直接把加密代码，按图索骥找到加密函数后，反编译过来发现如下：</p>

<p><img src="http://static.wooyun.org/20140714/2014071418044238600.png" alt="enter image description here" /></p>

<p>运行后，直接爆到服务器端的地址http://103.X.X.X/priv1/baseservice.asmx</p>

<p>至此，找准了菊花的所在。下面开始研究爆菊啦</p>

<h2>0x04 长驱注入（ 爆菊部分由sql test大牛完成）</h2>

<hr />

<p>既然找到后台地址了,下面怎么来拿下这后台，这是头疼的问题，用工具扫描了下没发现什么漏洞，本人能力有限。看样子只能从站点下手了，重新整理下思路，把http://103.X.X.X/priv1/baseservice.asmx输入到浏览器发现</p>

<p><img src="http://static.wooyun.org/20140714/2014071406331077427.png" alt="enter image description here" /></p>

<p>有这么几个方法，既然有方法可以我直接用下，打开程序引用了WebService 代码如下：</p>

<p><img src="http://static.wooyun.org/20140714/2014071406331067967.png" alt="enter image description here" /></p>

<p>本来想试试XSS ,用AddCall方法插入到数据库，代码如下</p>

<p><img src="http://static.wooyun.org/20140714/2014071406331155575.png" alt="enter image description here" /></p>

<p>调用了下发现报错</p>

<p><img src="http://static.wooyun.org/20140714/2014071418044374226.png" alt="enter image description here" /></p>

<p>无语了，既然有SQL 注入，下面我们来说下这WebService SQL 注入。</p>

<p>挑选了一个获取方法getOrders ,调用的时候把参数加了一个单引号提示MYSQL错误，这注入点也太多了吧</p>

<p>以下就改造了查询语句</p>

<p><img src="http://static.wooyun.org/20140714/2014071406331133290.png" alt="enter image description here" /></p>

<p>返回了XML：</p>

<pre><code>&lt;?xml version="1.0" encoding="UTF-8"?&gt;&lt;RootJob&gt;&lt;Job&gt;&lt;Type&gt;9&lt;/Type&gt;&lt;Content&gt;3&lt;/Content&gt;&lt;Phone&gt;2&lt;/Phone&gt;&lt;JobID&gt;1&lt;/JobID&gt;&lt;/Job&gt;&lt;/RootJob&gt;
</code></pre>

<p>这个一看就知道了，下面的步骤就不详细写，是root注入。</p>

<p>写入一句话，目标是IIS，我也没找到目录程序目录，直接试了C:Inetpubwwwroot 写了一个Aspx马上去了，在浏览器上访问成功了。</p>

<p><img src="http://static.wooyun.org/20140714/2014071406331241524.png" alt="enter image description here" /></p>

<p>基本上完成了，剩下的就是提权了，在一个朋友的帮助下提权成功。</p>

<h2>0x05 扩大战果</h2>

<hr />

<p>这时已经通过mysql拿到了服务器的权限，查看注册表发现端口是55555，服务器版本为2003R2，加了个用户就进去看看。</p>

<p><img src="http://static.wooyun.org/20140714/2014071418044369415.jpg" alt="enter image description here" /></p>

<p>东西不复杂，IIS+mysql+C#的WebService</p>

<p><img src="http://static.wooyun.org/20140714/2014071418044364144.jpg" alt="enter image description here" /></p>

<p>把mysql做了个远程，本地连上看看。一看之下，这个团伙通过短信马监控到被害者的内容令小明大吃一惊。</p>

<p><img src="http://static.wooyun.org/20140714/2014071406331216466.jpg" alt="enter image description here" /></p>

<p>在SO这个库里，小明发现N多受害人的信息，包括大额的银行转账提示。如果这种短信被拦截的话，那后果可想而知。</p>

<p><img src="http://static.wooyun.org/20140714/2014071418044448622.jpg" alt="enter image description here" /></p>

<h2>0x06 挖掘产业链</h2>

<hr />

<p>但凡一个行业必须是有利可图的，小明既然发掘到了源头，就逆流而上，去深挖一下，安卓短信拦截马的整个产业链条。</p>

<p>说干就干，小明在电脑上输入短信拦截马、短信马 出售等相关关键词，发现有很多人在发布相关的需求。</p>

<p><img src="http://static.wooyun.org/20140714/2014071406331242039.png" alt="enter image description here" /></p>

<p>而是各种地下论坛里，很多相关求马的帖子。</p>

<p>他们买来主要就是为了诈骗。</p>

<p>或冒充熟人诈骗，或为了诱骗网银，或为了某些不可告人的秘密勾当。</p>

<p>随机找了个例子。</p>

<p><img src="http://static.wooyun.org/20140714/2014071406331362460.png" alt="enter image description here" /></p>

<p>小明通过对代码的分析，发现短信马的运行方式是这样的。</p>

<p>一旦安装了木马的手机，并授权给木马后，木马会立刻上传受害手机的通讯录。该手机的所有短信来往都会发给指定的手机号，而且该手机号可以使用代码，来指挥木马进行伪造短信。从而实施诈骗的目的</p>

<p><img src="http://static.wooyun.org/20140714/2014071418044473226.jpeg" alt="enter image description here" /></p>

<p><img src="http://static.wooyun.org/20140714/2014071406331353639.jpeg" alt="enter image description here" /></p>      </p>
    
			</body>
		</html>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          